home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / FASTSTRI.D < prev    next >
Encoding:
Modula Definition  |  1990-05-06  |  2.8 KB  |  80 lines

  1. DEFINITION MODULE FastStrings;
  2.  
  3. (*
  4.    String - Bibliothek
  5.  
  6.    Die hiesigen Funktionen ersetzen zum Teil die gleichnamigen Funktionen
  7.    aus 'Strings'.
  8.    
  9.    Früher (Version 1) waren diese Funktionen schneller als die im Modul
  10.    Strings, weil hier VAR-Parameter eingesetzt waren, wo im Strings-Modul
  11.    die Werte 'by value' (ohne VAR) übergeben wurden, was eine zusätzliche,
  12.    oft überflüssige interne Kopieraktion der Argumente erforderte.
  13.    
  14.    Seit Einführung der REF-Parameter ist dies aber nicht mehr der Fall -
  15.    die Strings-Funktionen sind nun ebenso schnell wie die von diesem
  16.    Modul.
  17.    
  18.    Dies Modul ist nur noch vorhanden, damit frühere Programme nicht
  19.    umgestellt werden brauchen.
  20. *)
  21.  
  22. FROM Strings IMPORT Relation;
  23.  
  24.  
  25. PROCEDURE Length ( REF str: ARRAY OF CHAR ): CARDINAL;
  26.   (* Liefert Länge eines Strings. *)
  27.  
  28. PROCEDURE Chr ( REF s: ARRAY OF CHAR; n: CARDINAL ): CHAR;
  29.   (*
  30.    * Liefert das Zeichen an der Position 'n' aus dem String 's'.
  31.    * Ist der String kürzer als 'n', wird der Wert 0C geliefert.
  32.    *)
  33.  
  34. PROCEDURE Pos ( REF pattern, source: ARRAY OF CHAR ): INTEGER;
  35.   (* Sucht ab der ersten Position in 'source' den String 'pattern'.
  36.    * Liefert -1, wenn nicht gefunden, sonst die Position. *)
  37.  
  38. PROCEDURE PosLen ( REF pattern, source: ARRAY OF CHAR ): CARDINAL;
  39.   (* Wie 'Pos', liefert aber 'Length (source)', wenn nicht gefunden. *)
  40.  
  41. PROCEDURE Assign ( REF source: ARRAY OF CHAR; VAR dest: ARRAY OF CHAR );
  42.   (* Weist die Variable 'source' auf 'dest' zu. *)
  43.  
  44. PROCEDURE Delete ( REF str    : ARRAY OF CHAR;
  45.                        pos    : INTEGER;
  46.                        len    : INTEGER );
  47.   (* Löscht 'len' Zeichen ab Position 'pos' aus dem String 'str'. *)
  48.  
  49. PROCEDURE Append ( REF source: ARRAY OF CHAR; VAR dest: ARRAY OF CHAR );
  50.   (* Fügt 'source' an 'dest' an. *)
  51.  
  52. PROCEDURE Insert ( REF source : ARRAY OF CHAR;
  53.                        pos    : INTEGER;
  54.                    VAR dest   : ARRAY OF CHAR );
  55.   (* Fügt 'source' an Position 'pos' in 'dest' ein. *)
  56.  
  57. PROCEDURE Copy ( REF source : ARRAY OF CHAR;
  58.                      pos    : INTEGER;
  59.                      len    : INTEGER;
  60.                  VAR dest   : ARRAY OF CHAR );
  61.   (* Kopiert ab Position 'pos' 'len' Zeichen aus 'source' nach 'dest'. *)
  62.  
  63.  
  64. PROCEDURE Concat ( REF source1, source2: ARRAY OF CHAR;
  65.                    VAR dest: ARRAY OF CHAR );
  66.   (*
  67.    * Fügt die Strings 'source1' und 'source2' in 'dest' zusammen.
  68.    *)
  69.  
  70. PROCEDURE Split ( REF source : ARRAY OF CHAR;
  71.                       pos    : INTEGER;
  72.                   VAR dest1  : ARRAY OF CHAR;
  73.                   VAR dest2  : ARRAY OF CHAR );
  74.   (* Kopiert source[0]..source[pos-1] nach dest1, Rest nach dest2. *)
  75.  
  76. PROCEDURE Compare ( REF left, right: ARRAY OF CHAR ): Relation;
  77.   (* Vergleicht 'left' mit 'right'. *)
  78.  
  79. END FastStrings.
  80.